package com.sg.controller.bff;

import com.sg.service.biz.bff.OrgDictionaryService;
import com.sg.dto.biz.bff.req.*;
import com.sg.dto.biz.bff.res.*;
import com.sg.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author ：
 * @version 1.0
 * @date ：
 */
@Api(value = "OrgDictionary", tags = {"OrgDictionary"})
@RestController
// @RequestMapping("/oms/orgDictionary/")
public class OrgDictionaryController {

    @Autowired
    OrgDictionaryService orgDictionaryService;

    /**
     * B1-3查部门类型数据字典列表（边界）
     * gen by moon at 9/19/2022, 7:27:55 PM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryDeptClassListBorder")
    @ApiOperation(value = "B1-3查部门类型数据字典列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryDeptClassListBorderRespDto> queryDeptClassListBorder(@RequestBody(required = false) @Validated BffQueryDeptClassListBorderReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryDeptClassListBorder(reqDTO));
    }

    /**
     * B1-3查询组织架构类型字典列表（边界）
     * gen by moon at 10/23/2022, 12:09:06 AM
     */
    @PostMapping("/oms/orgDictionary/queryOrgClassListBorder")
    @ApiOperation(value = "B1-3查询组织架构类型字典列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryOrgClassListBorderRespDto> queryOrgClassListBorder(@RequestBody(required = false) @Validated BffQueryOrgClassListBorderReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryOrgClassListBorder(reqDTO));
    }

    /**
     * B1-3查询可存档部门类型判断条件（管理）
     * gen by moon at 10/24/2022, 4:53:23 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryArchiveDeptClass")
    @ApiOperation(value = "B1-3查询可存档部门类型判断条件（管理）", response = OkrResult.class)
    public OkrResult<BffQueryArchiveDeptClassRespDto> queryArchiveDeptClass(@RequestBody(required = false) @Validated BffQueryArchiveDeptClassReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryArchiveDeptClass(reqDTO));
    }

    /**
     * B1-3查询可存档职务类别条件（管理）
     * gen by moon at 8/10/2022, 3:35:55 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryArchivePositionClass")
    @ApiOperation(value = "B1-3查询可存档职务类别条件（管理）", response = OkrResult.class)
    public OkrResult<BffQueryArchivePositionClassRespDto> queryArchivePositionClass(@RequestBody(required = false) @Validated BffQueryArchivePositionClassReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryArchivePositionClass(reqDTO));
    }

    /**
     * B1-3查询主岗就职字典列表（边界）
     * gen by moon at 8/31/2022, 7:28:15 PM
     */
    @PostMapping("/oms/orgDictionary/queryMainInductionOrgClassList")
    @ApiOperation(value = "B1-3查询主岗就职字典列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryMainInductionOrgClassListRespDto> queryMainInductionOrgClassList(@RequestBody(required = false) @Validated BffQueryMainInductionOrgClassListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryMainInductionOrgClassList(reqDTO));
    }

    /**
     * B1-3查询组织架构类型字典列表（管理）
     * gen by moon at 8/17/2022, 7:39:22 PM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryOrgClassList")
    @ApiOperation(value = "B1-3查询组织架构类型字典列表（管理）", response = OkrResult.class)
    public OkrResult<BffQueryOrgClassListRespDto> queryOrgClassList(@RequestBody(required = false) @Validated BffQueryOrgClassListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryOrgClassList(reqDTO));
    }

    /**
     * B1-3删除部门类型字典(管理)
     */
    @PostMapping("/oms/mgt/orgDictionary/deleteDeptClass")
    @ApiOperation(value = "B1-3删除部门类型字典(管理)", response = OkrResult.class)
    public OkrResult<BffDeleteDeptClassRespDto> deleteDeptClass(@RequestBody(required = false) @Validated BffDeleteDeptClassReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.deleteDeptClass(reqDTO));
    }

    /**
     * B1-3修改组织架构类型字典（管理）
     * gen by moon at 8/10/2022, 3:31:02 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/updateOrgClass")
    @ApiOperation(value = "B1-3修改组织架构类型字典（管理）", response = OkrResult.class)
    public OkrResult<BffUpdateOrgClassRespDto> updateOrgClass(@RequestBody(required = false) @Validated BffUpdateOrgClassReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.updateOrgClass(reqDTO));
    }

    /**
     * B1-3新增组织架构类型字典（管理）
     * gen by moon at 8/10/2022, 3:31:01 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/addOrgClass")
    @ApiOperation(value = "B1-3新增组织架构类型字典（管理）", response = OkrResult.class)
    public OkrResult<BffAddOrgClassRespDto> addOrgClass(@RequestBody(required = false) @Validated BffAddOrgClassReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.addOrgClass(reqDTO));
    }

    /**
     * B1查询工作任务来源列表
     * gen by moon at 4/3/2024, 12:03:03 AM
     */
    @PostMapping("/oms/orgDictionary/queryWorkTaskSourceList")
    @ApiOperation(value = "B1查询工作任务来源列表", response = OkrResult.class)
    public OkrResult<BffQueryWorkTaskSourceListRespDto> queryWorkTaskSourceList(@RequestBody(required = false) @Validated BffQueryWorkTaskSourceListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryWorkTaskSourceList(reqDTO));
    }

    /**
     * B1查询UCD筛选工作任务来源列表
     * gen by moon at 4/3/2024, 12:03:10 AM
     */
    @PostMapping("/oms/orgDictionary/queryUcdWorkTaskSourceList")
    @ApiOperation(value = "B1查询UCD筛选工作任务来源列表", response = OkrResult.class)
    public OkrResult<BffQueryUcdWorkTaskSourceListRespDto> queryUcdWorkTaskSourceList(@RequestBody(required = false) @Validated BffQueryUcdWorkTaskSourceListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryUcdWorkTaskSourceList(reqDTO));
    }

    /**
     * B1查询工作任务来源匹配部门业务身份列表(管理)
     * gen by moon at 5/11/2024, 11:57:48 PM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryWorkTaskSourceMateDeptBusinessIdentityList")
    @ApiOperation(value = "B1查询工作任务来源匹配部门业务身份列表(管理)", response = OkrResult.class)
    public OkrResult<BffQueryWorkTaskSourceMateDeptBusinessIdentityListRespDto> queryWorkTaskSourceMateDeptBusinessIdentityList(@RequestBody(required = false) @Validated BffQueryWorkTaskSourceMateDeptBusinessIdentityListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryWorkTaskSourceMateDeptBusinessIdentityList(reqDTO));
    }

    /**
     * B1查询任务分类列表(管理)
     * gen by moon at 7/24/2024, 3:19:29 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/queryTaskCategoriesList")
    @ApiOperation(value = "B1查询任务分类列表(管理)", response = OkrResult.class)
    public OkrResult<BffQueryTaskCategoriesListRespDto> queryTaskCategoriesList(@RequestBody(required = false) @Validated BffQueryTaskCategoriesListReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryTaskCategoriesList(reqDTO));
    }

    /**
     * B1存档任务分类(管理)
     * gen by moon at 7/24/2024, 3:19:37 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/archiveTaskCategories")
    @ApiOperation(value = "B1存档任务分类(管理)", response = OkrResult.class)
    public OkrResult<BffArchiveTaskCategoriesRespDto> archiveTaskCategories(@RequestBody(required = false) @Validated BffArchiveTaskCategoriesReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.archiveTaskCategories(reqDTO));
    }

    /**
     * B1删除任务分类(管理)
     * gen by moon at 7/24/2024, 3:19:44 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/deleteTaskCategories")
    @ApiOperation(value = "B1删除任务分类(管理)", response = OkrResult.class)
    public OkrResult<BffDeleteTaskCategoriesRespDto> deleteTaskCategories(@RequestBody(required = false) @Validated BffDeleteTaskCategoriesReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.deleteTaskCategories(reqDTO));
    }

    /**
     * B1修改任务分类(管理)
     * gen by moon at 7/24/2024, 3:19:52 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/updateTaskCategories")
    @ApiOperation(value = "B1修改任务分类(管理)", response = OkrResult.class)
    public OkrResult<BffUpdateTaskCategoriesRespDto> updateTaskCategories(@RequestBody(required = false) @Validated BffUpdateTaskCategoriesReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.updateTaskCategories(reqDTO));
    }

    /**
     * B1查询任务分类主题列表(边界)
     * gen by moon at 7/24/2024, 3:19:59 AM
     */
    @PostMapping("/oms/orgDictionary/queryTaskCategoriesThemeListBorder")
    @ApiOperation(value = "B1查询任务分类主题列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryTaskCategoriesThemeListBorderRespDto> queryTaskCategoriesThemeListBorder(@RequestBody(required = false) @Validated BffQueryTaskCategoriesThemeListBorderReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.queryTaskCategoriesThemeListBorder(reqDTO));
    }

    /**
     * B1新增任务分类(管理)
     * gen by moon at 7/24/2024, 3:20:07 AM
     */
    @PostMapping("/oms/mgt/orgDictionary/addTaskCategories")
    @ApiOperation(value = "B1新增任务分类(管理)", response = OkrResult.class)
    public OkrResult<BffAddTaskCategoriesRespDto> addTaskCategories(@RequestBody(required = false) @Validated BffAddTaskCategoriesReqDto reqDTO) {
        return OkrResult.success(orgDictionaryService.addTaskCategories(reqDTO));
    }
}
